//严格模式可以应用到整个脚本或个别函数中。因此在使用时，我们可以将严格模式分为为脚本开启严格模式和为函数开启严格模式两种情况。
//开启严格模式

'use strict'; //为整个脚本开启严格模式

function name(params) {
  'use strick'; //为这个函数开启严格模式

  // 函数体
}

/* 

严格模式的变化

严格模式对 Javascript 的语法和行为，都做了一些改变。

3.3.1 变量规定
在正常模式中，如果一个变量没有声明就赋值，默认是全局变量。严格模式禁止这种用法，变量都必须先用 var （let、const）命令声明，然后再使用。

严禁删除已经声明变量。例如：delete x; 语法是错误的。

3.2.2 严格模式下 this 指向问题
以前在全局作用域函数中的 this 指向 window 对象。
严格模式下全局作用域中函数中的 this 是 undefined。
以前构造函数时不加 new 也可以 调用,当普通函数，this 指向全局对象
严格模式下,如果 构造函数不加 new 调用, this 指向的是 undefined 如果给他赋值则会报错
new 实例化的构造函数指向创建的对象实例。
定时器 this 还是指向 window。
事件、对象还是指向调用者。
3.2.3 函数变化
函数不能有重名的参数。

函数必须声明在顶层。新版本的 JavaScript 会引入 “块级作用域”（ ES6 中已引入）。为了与新版本接轨，不允许在非函数的代码块内声明函数。

*/